Bidirectional Typing
نویسندگان
چکیده
Bidirectional typing combines two modes of typing: type checking, which checks that a program satisfies known type, and synthesis, determines from the program. Using checking enables bidirectional to support features for inference is undecidable; using synthesis avoid large annotation burden explicitly typed languages. In addition, improves error locality. We highlight design principles underlie systems, survey development prehistoric period before Pierce Turner's local present day, provide guidance future investigations.
منابع مشابه
Bidirectional Grammar and Bidirectional Optimization
The human language faculty is a bidirectional system, i.e. it can be used by processes of approximately equal computational complexity to understand and to generate utterances of a language. We assume the general framework of optimality theory and treat the language faculty as a constraint-based system where the very same constraints are uses both in comprehension and in generation. In the simp...
متن کاملBidirectional Coroutines
The bidirectional coroutine is introduced as a mechanism for overcoming a shortcoming in the method of specification of the transfer of control between coroutines. An analogy is drawn between subroutines and coroutines by observing that coroutines, like subroutines, should not have to know with whom they are interacting. At present, most coroutine implementations require specific mention of the...
متن کاملBidirectional Heuristic
The assessment of bidirectional heuristic search has been incorrect since it was rst published more than a quarter of a century ago. For quite a long time, this search strategy did not achieve the expected results, and there was a major misunderstanding about the reasons behind it. Although there is still wide-spread belief that bidirectional heuristic search is a icted by the problem of search...
متن کاملTyping Coroutines
A coroutine is a programming construct between function and thread. It can be invoked like a function, but before it returns a value (if ever) it may suspend itself arbitrarily often to return intermediate results and then be resumed with new inputs. Unlike with preemptive threading, a coroutine does not run concurrently with the rest of the program, but rather takes control until it voluntaril...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: ACM Computing Surveys
سال: 2021
ISSN: ['0360-0300', '1557-7341']
DOI: https://doi.org/10.1145/3450952